1. Technical Field:
The present invention relates to a numerical control system, and more particularly a control system that dynamically allocates and controls multiple job streams for a numerically controlled machine tool.
2. Discussion of Related Art:
Numerical control systems control physical manufacturing processes, such as metal cutting or forming operations, and involve coordinated motion control interacting with discrete digital control signals, across a variety of machine tools. Numerically controlled machine tools range from large, high end, multi (&gt;3) axis, CNC contouring machine tools with automatic tool changers and automatic pallet loading/unloading to low end two axis lathes, two axis drills and sheet metal punching machines. Some very large machine tools coordinate as many as four or more spindles operating simultaneously.
The central feature of these numerical control systems and their controlled machine tools is a part program (as opposed to a computer program). This program may control all of a sequence of operations including, but not limited to, part loading and unloading, tool selection and changing, spindle speed and feed rate control, and all of the cutting motions required to manufacture a given part. Paramount to the future of these machine tools is the ability to adapt. To do so, they must be able to: utilize current electronic technology; accommodate unplanned (when they were being designed and built) additional requirements; and incorporate new ideas which, when implemented, give the machine tool features and capabilities not planned or understood at the time the machine tool was purchased.
A "black box" controller comprised many proprietary hardware circuits that describes the motion and related machining activities to be performed. The controller supplies control signals (i.e., digital or low voltage DC signals), such that there is one signal for each axis of motion. The control signal is fed to a servo device, a type of amplifier that boosts the control signal to the level required for driving the axis motor. A typical axis motor might require a voltage on the order of 220 to 440 volts 3 phase in a large system. The axis motor in turn drives an axis or motion of the machine tool that is ultimately coupled to the tool being controlled. A feedback device (i.e., encoder) may integrate in the servo motor device or attach to the axis or motion to provide a feedback signal to the controller. The feedback device provides the controller with information about the actual position of the axis or motion so that the controller can make automatic corrections if the axis or motion deviates from its commanded position. When feedback is used, the system is said to have a closed loop control.
The first controllers were constructed using discrete transistorized circuits. With advancing technology, many of these dedicated discrete circuits were replaced first by mini computers, then by micro computers. Market leaders in the area of microcontrollers have employed a business strategy that has been to maintain the "black box" controller as a proprietary technology. Although the customer supplies the numerical control part program (describing the desired motion and ancillary machining activities), the customer is given limited documentation and access to on the internal workings of the controller. The proprietary strategy allows the controller manufacturer to require the customer to purchase all of the peripheral components from that manufacturer. These proprietary hardware solutions may use circuits with DSP chips that are programmed in firmware (i.e., burned into EPROMs) to handle the real time computational-intensive tasks.
Accordingly, a need exists for a software-based numerical control system using off the shelf generic computing hardware such as a PC. It is a hardware independent solution that enables multiple job streams to be dynamically allocated, thus affording considerable flexibility in system configuration. Although other existing systems may also be capable of running multiple job streams, these other systems have no means of dynamically allocating the number of multiple job streams to suit the specific configuration dictated by the user. Rather, conventional hardware based numerical control systems are pre-configured to run a fixed number of multiple job streams, and this number cannot be reconfigured without changing the hardware. A software-based controller allows job streams to be added or removed programmatically at start up time, based on the system requirements dictated by the user. Dynamically allocated multiple job streams give the software architecture a number of advantages. The architecture is extremely scalable. Additional job streams can be added at configuration time, without any preset or hard coded limit. The only apparent limit on the number of job streams is that dictated by the available [RAM] memory, the processing capacity of the CPU, or the data throughput of the input/output bus. Thus, a software architecture that dynamically allocates job streams can take advantage of newer, faster processors or larger memories without requiring any modifications to the system software. In addition, it is desirable that software-based controllers use commercially available real time operating systems that run on Intel or other common computing platforms. Finally, this architecture allows software-based numerical controllers to exist just as any other node or computer on a LAN or other company wide network.